• log ana todo
  • log ana todo
  • 每次变换reqnum,自动插入分隔符号
  • 日志内容读取限制
  • 记录上次的request id;下次刷新时只取新的。
  • 请求时间
  • misc todo
  • log_storage.php 代码分离
  • 查看时触发刷新日志
  • 分析时数据库出错要报错。
  • 三张表都换为北京时间
  • post参数显示验证
  • 这里不要默认填时间
  • 日志内容最大高度设置
  • 编码问题
  • ip解析异常
  • 支持定时任务访问,定时分析
  • 移植到 dajx
  • utf8mb4
  • log ana todo
    log parser/ana 
    访问 GUI 时触发:ana.php 一次性分析处理所有日志 
    lv1= lv2= type=todo

    log ana todo

    文章访问历史记录 
    log ana 跨天分析遗漏,用户问题处理加强
    log_url 定时更新 log ana
    清理指定日期的数据 重新分析
    logx.txt 按天分隔 
    log user agent
    log message 过长处理(超过1m),丢弃?
    log ana:过滤掉蜘蛛
    log ana 测试用例 培训
    调整字段长度
    mediumtext
    page size
    按用户查找失效(user id 过滤有问题)
    快捷键
    异常处理:
    1 编码问题,将编码 base64 写入
    2 or 记录文件位置(行数)
    不要用 pre-line:
    <p class="rizhi" style="white-space: pre-line;">
    lv1=mynote lv2= type=

    每次变换reqnum,自动插入分隔符号

    不用这么复杂,简单完美方案:* opt: 避免登录时复用 cookie,保证每个 session 使用的 cookie 都是唯一的 
    每个request的相同信息,都显示在此分隔符中:
    user 相关、请求相关(时间、uri。。)
    根据sessionid找user时,不能简单的做表关联,需要根据时间来找到唯一的用户,或者没有用户
    lv1=mynote lv2= type=todo

    日志内容读取限制

    不要超过700字节(可配置),超过点可以点击链接查看详细内容
    lv1=mynote lv2= type=

    记录上次的request id;下次刷新时只取新的。

    lv1=mynote lv2= type=

    请求时间

    1、request表加入请求时间字段,同样毫秒级别;建立索引
    2、不传参数,默认只查询30分钟内

    misc todo

    lv1= lv2= type=todo
    多余行不要
    <!--                        <tr>-->
    <!--                            <td colspan="--><?//= $field_num; ?><!--"></td>-->
    <!--                        </tr>-->
    api请求URL(->请求URL) 等字段名称优化
    lv1=mynote lv2= type=todo

    log_storage.php 代码分离

    controller & view
    view只是模板,只负责填数据,除了foreach,其他控制模块尽量都不使用
    仿照db differ
    从mynote移动到additional项目
    lv1= lv2= type=todo

    查看时触发刷新日志

    ana.php 一次性分析处理所有日志 
    lv1= lv2= type=todo

    分析时数据库出错要报错。

    比如:insert失败(字段长度不够、类型不匹配、字段缺失)、连接出错
    lv1= lv2= type=todo

    三张表都换为北京时间

    lv1= lv2= type=todo

    post参数显示验证

    验证所有utf8编码都能够正常解析、显示
    lv1= lv2= type=todo

    这里不要默认填时间

    2 点击重置也没有效果
    手动删除时间后,外面的显示还有问题:
    重置时恢复半小时
    lv1= lv2= type=

    日志内容最大高度设置

    配置修改,点击保存:修改到 url,并重新加载页面
    SHA-1: 7d0fa6905ea6588accc9f548299a909dfd7b73e4
    * 日志内容最大高度(不设置则不限制高度)

    编码问题

    Notice: iconv(): Detected an illegal character in input string in /home/www/additional_item/log_storage/bin/Analysis/mynote_log.php on line 110
    [{"status":true,"api_name":"mynote_log","path":"\/home\/www\/mynote\/basic\/runtime\/seaslog\/default\/20210602.log","handled_lines":8007,"insert_lines":3333,"$last_end_index":1196824},{"status":true,"api_name":"mynote_login","path":"\/home\/www\/mynote\/basic\/runtime\/seaslog\/login\/20210602.log","handled_lines":10},{"status":true,"api_name":"mynote_request","path":"\/home\/www\/mynote\/basic\/runtime\/logs\/logs.txt","handled_lines":0},{"status":true,"api_name":"mynote_log","path":"\/home\/www\/mynote\/basic\/runtime\/logs\/nginx.log","handled_lines":0},{"status":true,"api_name":"mynote_log","path":"\/home\/www\/mynote\/basic\/runtime\/logs\/nginx-old.log","handled_lines":0}]

    ip解析异常

    Fatal error: Uncaught InvalidArgumentException: The value "157.90.181.15IP:203.208.60.108" is not a valid IP address. in /home/www/additional_item/vendor/ipip/db/src/ipip/db/Reader.php:87 Stack trace: #0 /home/www/additional_item/vendor/ipip/db/src/ipip/db/City.php(16): ipip\db\Reader->find('157.90.181.15IP...', 'CN') #1 /home/www/additional_item/log_storage/bin/Analysis/xjc_nignx.php(66): ipip\db\City->find('157.90.181.15IP...', 'CN') #2 /home/www/additional_item/log_storage/bin/Analysis/xjc_nignx.php(30): Analysis\xjc_nignx->_analysis() #3 /home/www/additional_item/log_storage/bin/Analysis/Analysis.php(47): Analysis\xjc_nignx->index() #4 /home/www/additional_item/log_storage/bin/Analysis/Analysis.php(33): Analysis\Analysis->_explain('xjc_nignx', '/home/www/mynot...') #5 /home/www/additional_item/log_storage/ana.php(10): Analysis\Analysis->index() #6 {main} thrown in /home/www/additional_item/vendor/ipip/db/src/ipip/db/Reader.php on line 87

    支持定时任务访问,定时分析

    现在需要登录

    移植到 dajx

    utf8mb4

    ALTER TABLE `mynote_log` DEFAULT CHARACTER SET utf8mb4;
    ALTER TABLE `mynote_login` DEFAULT CHARACTER SET utf8mb4;
    ALTER TABLE `mynote_request` DEFAULT CHARACTER SET utf8mb4;
    CREATE TABLE `mynote_log` (
      `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
      `datetime` varchar(30) CHARACTER SET utf8 DEFAULT NULL,
      `level` tinyint(4) DEFAULT NULL,
      `class` varchar(256) CHARACTER SET utf8 DEFAULT NULL,
      `filename` varchar(256) CHARACTER SET utf8 DEFAULT NULL,
      `reqnum` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
      `message` text CHARACTER SET utf8,
      `logger` varchar(20) CHARACTER SET utf8 NOT NULL,
      PRIMARY KEY (`id`),
      KEY `reqnum` (`reqnum`),
      KEY `id` (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=18837 DEFAULT CHARSET=utf8mb4;
    ALTER TABLE `mynote_log` MODIFY COLUMN `message` mediumtext CHARACTER SET utf8mb4 DEFAULT ""